Skip to main content

kubectl command usage

在 Kubernetes (kubectl) 中,可以使用以下命令来查看 Pod 内的容器列表、查看容器日志以及进入容器:


1. 查看 Pod 的容器列表

kubectl get pod <pod-name> -o jsonpath="{.spec.containers[*].name}"

🔹 这个命令会输出该 Pod 内的所有容器名称。
如果 Pod 有多个容器,也可以使用:

kubectl describe pod <pod-name>

🔹 在输出的 Containers: 部分,可以看到该 Pod 内的所有容器。


2. 查看 Pod 内某个容器的日志

kubectl logs <pod-name> -c <container-name>

🔹 其中:

  • <pod-name> 是 Pod 的名称。

  • <container-name> 是 Pod 内的某个容器的名称(如果 Pod 只有一个容器,可以省略 -c <container-name>)。

如果需要实时查看日志(类似 tail -f),可以加上 -f

kubectl logs -f <pod-name> -c <container-name>

如果要查看以前的日志(适用于容器崩溃重启的情况):

kubectl logs --previous <pod-name> -c <container-name>

3. 进入 Pod 内的容器

(1)进入 Bash 交互式终端

如果容器内有 bash,可以使用:

kubectl exec -it <pod-name> -c <container-name> -- /bin/bash

🔹 -it 选项用于交互式会话。

(2)如果容器没有 bash,尝试使用 sh

有些轻量级镜像(如 alpine)可能没有 bash,可以尝试:

kubectl exec -it <pod-name> -c <container-name> -- /bin/sh

(3)执行单个命令

如果你只想在容器内运行一个命令(比如 ls),可以使用:

kubectl exec <pod-name> -c <container-name> -- ls /app

总结

任务命令
查看 Pod 内的容器列表kubectl get pod <pod-name> -o jsonpath="{.spec.containers[*].name}"
查看容器日志kubectl logs <pod-name> -c <container-name>
实时查看日志kubectl logs -f <pod-name> -c <container-name>
查看崩溃前日志kubectl logs --previous <pod-name> -c <container-name>
进入 Bash 终端kubectl exec -it <pod-name> -c <container-name> -- /bin/bash
进入 Sh 终端kubectl exec -it <pod-name> -c <container-name> -- /bin/sh
在容器内执行命令kubectl exec <pod-name> -c <container-name> -- ls /app

如果你的 Pod 只有一个容器-c <container-name> 可以省略。